import { defineStore } from 'pinia'
import { loginUser, getCurrentUser } from '@/api/user'

export const useUserStore = defineStore('user', {
  state: () => ({
    userInfo: null, // 存储用户信息
    isLogin: false, // 登录状态
  }),
  actions: {
    // 登录并存储用户信息
    async login(params) {
      const res = await loginUser(params)
      // 假设登录接口返回完整用户信息（需与后端确认字段）
      this.userInfo = res.data.user
      this.isLogin = true
      // 持久化存储（可选）
      localStorage.setItem('userInfo', JSON.stringify(res.data.user))
    },
    // 登出
    logout() {
      this.userInfo = null
      this.isLogin = false
      localStorage.removeItem('userInfo')
    },
    // 从本地存储恢复用户状态（可选）
    initUser() {
      const user = localStorage.getItem('userInfo')
      if (user) {
        this.userInfo = JSON.parse(user)
        this.isLogin = true
      }
    },
    // 获取当前用户信息（可能从缓存或重新请求）
    async fetchCurrentUser(id) {
      const res = await getCurrentUser(id)
      this.userInfo = res.data
      return this.userInfo
    },
  },
})
